package com.qf.service;

import com.qf.dao.CartDao;
import com.qf.dao.CartDaoImpl;
import com.qf.dao.GoodsDao;
import com.qf.dao.GoodsDaoImpl;
import com.qf.pojo.Cart;
import com.qf.pojo.Goods;

import java.util.List;

/**
 * @author hanjiejie
 * @version V1.0
 * @Project java2203
 * @Package com.qf.service
 * @Description:
 * @Date 2022/5/26 14:35
 */
public class CartServiceImpl implements CartService {
    @Override
    public Boolean createCart(Integer uid, Integer pid) {
    //根据用户的id 和商品的ip 去数据库里查找是否已有该商品的数据
        CartDao cartDao = new CartDaoImpl();
        Cart cart = cartDao.findCartByUidAndpid(uid, pid);
        //查询商品的对象
        GoodsDao goodsDao = new GoodsDaoImpl();
        Goods goods = goodsDao.findById(pid);
        if (cart !=null){
            //添加商品的购买数量
            cart.setNum(cart.getNum()+1);
            //将商品的对象放入购物车
            cart.setGoods(goods);
            //计算总价  = 商品的数量+商品的价格

            //调用Dao层将最新的数据跟新到数据库中
                cartDao.updateCart(cart);
        }else {
            //如果为空  把商品添加进去
            //创建购物车对象
            cart= new Cart();
            cart.setUid(uid);
            cart.setPid(pid);
            cart.setNum(1);
            cart.setGoods(goods);
          //将商品添加到购物撤离
            cartDao.insertCart(cart);
        }
        return true;
    }

    @Override
    public List<Cart> findCartByUid(Integer uid) {
    // 根据用户id 查询购物车的集合
        CartDao cartDao = new CartDaoImpl();
        List<Cart> cartlist= cartDao.findCartByUid(uid);
        //查找所有商品
        GoodsDao goodsDao = new GoodsDaoImpl();
        List<Goods> goodsList = goodsDao.findGoodsAll();
        //遍历
            if (cartlist !=null){
                for (Cart cart : cartlist) {
                    for (Goods goods : goodsList) {
                        if (cart.getPid()==goods.getId()){
                            //将商品对象 放入购物项对象中
                            cart.setGoods(goods);
                        }
                    }
                }
            }
        return cartlist;
    }
}
